Skip to content

Conversation

@javier-godoy
Copy link
Member

@javier-godoy javier-godoy commented Dec 3, 2025

Notes

  • The repository depends on the latest generally available version of Vaadin 14, and it's compatible with 23, 24 and 25 (beta).
  • It was decided that the artifactId will not be suffixed with -addon

Checklist for the initial commit

General

  • The repository is based on Flowing Code add-on starter template.
  • Flowing Code Developers have been granted Maintain permissions for the repository.
  • The repository depends on the latest released and generally available version of Vaadin. SEE NOTE
  • Commit messages follows Flowing Code Commit Message Guidelines
  • Scopes used in commit messages are consistent
  • Code is formatted according to Flowing Code Style Guide

POM

  • <artifactId> has been replaced
  • <artifactId> is suffixed with -addon SEE NOTE
  • <inceptionYear> is set to the current year.
  • "Template Add-on" has been replaced in <name> and <description>.
  • The <description> focuses on the component's function and benefit to the user.
  • <scm> URLs point to this repository.

README

  • The README file clearly describe the purpose of the add-on, highlighting its features and benefits.
  • Links in badges references this add-on.
  • All links in the README are correct and functional.
  • Jenkins badge ends in -addon.
  • All instances of "Template Add-on" have been replaced with the actual full name of the add-on.
  • Double check spelling "add-on" vs "addon"
  • The "Getting started" section contains code examples.

ISSUE_TEMPLATE

  • "Template Add-on" have been replaced with the actual full name of the add-on in both Bug Report and Feature Request templates.

License

  • License headers are included in all the source files that require a license header.
  • The license header is located before the package declaration.
  • The license header references the name of this project.

Documentation

  • Public and protected classes, methods, constructors, and fields are well-documented with clear explanations.

Demos

  • Run the application locally to ensure demos are working as expected and check if sources are being displayed correctly.
    DOES NOT APPLY

Tests

  • Unit and integration tests align with the functionality of the new add-on.

CI

  • Jenkins job is configured for the initial-implementation branch.
  • Webhook has been configured
  • Dependency has been added to AddonsDemo DOES NOT APPLY

Summary by CodeRabbit

  • New Features

    • Typed JavaScript interop: typed then/toCompletableFuture with automatic JSON→object conversion.
    • JSON APIs: serialize/deserialize Java objects and collections to/from JSON.
    • JSON codec helpers: utilities to encode primitives and detect encoding without type info.
  • Chores

    • Project metadata and repository references updated.
    • README and issue template text updated; demo instructions removed.
    • Widespread formatting, license headers, and whitespace cleanups.

✏️ Tip: You can customize this high-level summary in your review settings.

@javier-godoy javier-godoy requested a review from paodb December 3, 2025 15:58
@coderabbitai
Copy link

coderabbitai bot commented Dec 3, 2025

Walkthrough

Updated project metadata and docs, added license headers and formatting cleanups, introduced JsonSerializer and new JsonCodec helpers, added typed result handling in ElementalPendingJavaScriptResult, and applied test updates including new imports and additional assertions.

Changes

Cohort / File(s) Summary
Configuration & Docs
.github/ISSUE_TEMPLATE/bug-report.yml, .github/ISSUE_TEMPLATE/feature-request.yml, pom.xml, README.md
Updated issue templates to reference "JsonMigrationHelper Add-On", changed SCM metadata and groupId in pom.xml, and removed demo/build instructions from README.
JSON Serialization & Codec
src/main/java/com/flowingcode/vaadin/jsonmigration/JsonSerializer.java, src/main/java/com/flowingcode/vaadin/jsonmigration/JsonCodec.java
Added JsonSerializer public APIs for toJson/toObject/toObjects and new public helpers in JsonCodec (canEncodeWithoutTypeInfo, encodeWithoutTypeInfo) plus refactored decoding control flow.
Typed Pending JS Result
src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalPendingJavaScriptResult.java
Introduced typed then(Class<T>...) overloads and toCompletableFuture(Class<T>) with conversion via JsonCodec.decodeAs(), plus an untyped default toCompletableFuture().
Instrumentation & Utilities
src/main/java/com/flowingcode/vaadin/jsonmigration/ClassInstrumentationJacksonHelper.java, src/main/java/com/flowingcode/vaadin/jsonmigration/ClassInstrumentationUtil.java, src/main/java/com/flowingcode/vaadin/jsonmigration/InstrumentationViewInitializer.java, src/main/java/com/flowingcode/vaadin/jsonmigration/InstrumentedRoute.java
Added license header(s) and applied formatting/line-wrapping and minor Javadoc/textual edits; no functional API changes to instrumentation logic (mostly whitespace and reflow).
Minor source formatting & small API tweak
src/main/java/com/flowingcode/vaadin/jsonmigration/JsonMigration.java, src/main/java/com/flowingcode/vaadin/jsonmigration/JsonMigrationHelper.java, src/main/java/com/flowingcode/vaadin/jsonmigration/*Node.java, src/main/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable.java, src/main/java/com/flowingcode/vaadin/jsonmigration/UnsupportedJsonValueImpl.java, src/main/java/com/flowingcode/vaadin/jsonmigration/LegacyJsonMigrationHelper.java, src/main/java/com/flowingcode/vaadin/jsonmigration/JsonMigrationHelper25.java
Formatting adjustments, removal of unused imports, added @UtilityClass to JsonMigration, and EOF/brace cleanup across elemental node classes; no behavioral changes.
Tests — license/header/formatting
src/test/java/com/flowingcode/vaadin/jsonmigration/...
Added Apache-2.0 license headers and standardized indentation across many test files; widespread formatting-only edits (see grouped test cohorts below).
Tests — behavior/assertion updates & imports
src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallablesTest.java, src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallablesTest25.java, src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablesTest.java
Consolidated reflective constructor calls, added Jackson JsonNode imports in some tests, and introduced additional parity assertions comparing instrumented vs non-instrumented results.
Tests — many small formatting-only edits
src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable*.java, src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable*.java, src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_*.java, src/test/java/com/flowingcode/vaadin/jsonmigration/*Test{,24,25}.java
Bulk reformatting: indentation, blank-line and import ordering changes across many test classes; no signature or behavioral changes in most files.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~30 minutes

Areas requiring extra attention:

  • ElementalPendingJavaScriptResult.java: verify typed conversion and null-safety semantics.
  • JsonSerializer.java: new public serialization/deserialization paths (reflection, records, collections) — inspect correctness and exception handling.
  • JsonCodec.java: validate primitive detection and encode/decode behavior for edge cases.
  • ClientCallablesTest.java: ensure added parity assertions are correct and do not hide instrumentation issues.

Possibly related PRs

Suggested reviewers

  • paodb
  • mlopezFC

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 15.57% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title '0.9.0 release candidate' accurately reflects the main purpose of the PR, which is preparing a release candidate version for the JsonMigrationHelper project.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 0.9.0-rc

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalPendingJavaScriptResult.java (1)

40-40: Replace import with local JsonCodec abstraction.

Change import com.vaadin.flow.internal.JsonCodec; to import com.flowingcode.vaadin.jsonmigration.JsonCodec; on line 40.

The local JsonCodec class provides the same decodeAs method signature and is specifically designed to abstract Vaadin version differences. Using Vaadin's internal API (com.vaadin.flow.internal) bypasses this abstraction and introduces version compatibility risks that the project aims to avoid.

🧹 Nitpick comments (6)
src/main/java/com/flowingcode/vaadin/jsonmigration/InstrumentationViewInitializer.java (1)

50-53: Consider using String.format() for the exception message.

The multi-line string concatenation is functional and readable, but modern Java conventions would suggest String.format() for improved clarity and maintainability.

- throw new IllegalArgumentException(
-     navigationTarget.getName()
-         + " must be annotated with @"
-         + InstrumentedRoute.class.getSimpleName());
+ throw new IllegalArgumentException(
+     String.format("%s must be annotated with @%s",
+         navigationTarget.getName(),
+         InstrumentedRoute.class.getSimpleName()));
src/main/java/com/flowingcode/vaadin/jsonmigration/JsonCodec.java (2)

117-144: Minor: Javadoc mentions Number but implementation handles only Integer and Double.

The Javadoc at line 119 states "Supported values types are {@link String}, {@link Number}, {@link Boolean}, {@link JsonValue}" but the implementation (lines 135-136) only handles Integer and Double, not other Number subclasses like Long or Float. Consider updating the Javadoc for accuracy or extending support.

-   * Helper for encoding any "primitive" value that is directly supported in JSON. Supported values
-   * types are {@link String}, {@link Number}, {@link Boolean}, {@link JsonValue}. <code>null</code>
+   * Helper for encoding any "primitive" value that is directly supported in JSON. Supported values
+   * types are {@link String}, {@link Integer}, {@link Double}, {@link Boolean}, {@link JsonValue}. <code>null</code>

132-134: Minor inconsistency: type variable already holds value.getClass().

Line 133 uses value.getClass() but type was just assigned value.getClass() on line 132.

    Class<?> type = value.getClass();
-   if (String.class.equals(value.getClass())) {
+   if (String.class.equals(type)) {
      return Json.create((String) value);
src/main/java/com/flowingcode/vaadin/jsonmigration/JsonSerializer.java (3)

206-215: Class.newInstance() is deprecated since Java 9.

Using the deprecated newInstance() method. Prefer getDeclaredConstructor().newInstance() for consistency with the rest of the codebase (as seen in test files) and to handle exceptions more explicitly.

    T instance;
    try {
-     instance = type.newInstance();
+     instance = type.getDeclaredConstructor().newInstance();
    } catch (Exception e) {
      throw new IllegalArgumentException(
          "Could not create an instance of type "

360-368: Class.newInstance() is deprecated since Java 9.

Same as the other location — prefer getDeclaredConstructor().newInstance().

    try {
-     return (Collection<?>) collectionType.newInstance();
+     return (Collection<?>) collectionType.getDeclaredConstructor().newInstance();
    } catch (Exception e) {

271-274: Returning null for non-array JSON may be unexpected.

When json.getType() != JsonType.ARRAY, returning null silently may mask errors. Consider throwing an IllegalArgumentException to signal misuse, or document this behavior explicitly in the calling method's Javadoc.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2202d52 and ce4d8e4.

📒 Files selected for processing (103)
  • .github/ISSUE_TEMPLATE/bug-report.yml (1 hunks)
  • .github/ISSUE_TEMPLATE/feature-request.yml (1 hunks)
  • README.md (1 hunks)
  • pom.xml (1 hunks)
  • src/main/java/com/flowingcode/vaadin/jsonmigration/ClassInstrumentationJacksonHelper.java (1 hunks)
  • src/main/java/com/flowingcode/vaadin/jsonmigration/ClassInstrumentationUtil.java (17 hunks)
  • src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalArrayNode.java (0 hunks)
  • src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalBooleanNode.java (0 hunks)
  • src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalNullNode.java (0 hunks)
  • src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalNumberNode.java (0 hunks)
  • src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalObjectNode.java (1 hunks)
  • src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalPendingJavaScriptResult.java (2 hunks)
  • src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalStringNode.java (1 hunks)
  • src/main/java/com/flowingcode/vaadin/jsonmigration/InstrumentationViewInitializer.java (2 hunks)
  • src/main/java/com/flowingcode/vaadin/jsonmigration/InstrumentedRoute.java (0 hunks)
  • src/main/java/com/flowingcode/vaadin/jsonmigration/JsonCodec.java (2 hunks)
  • src/main/java/com/flowingcode/vaadin/jsonmigration/JsonMigration.java (7 hunks)
  • src/main/java/com/flowingcode/vaadin/jsonmigration/JsonMigrationHelper.java (1 hunks)
  • src/main/java/com/flowingcode/vaadin/jsonmigration/JsonMigrationHelper25.java (6 hunks)
  • src/main/java/com/flowingcode/vaadin/jsonmigration/JsonSerializer.java (1 hunks)
  • src/main/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable.java (2 hunks)
  • src/main/java/com/flowingcode/vaadin/jsonmigration/LegacyJsonMigrationHelper.java (4 hunks)
  • src/main/java/com/flowingcode/vaadin/jsonmigration/UnsupportedJsonValueImpl.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/BaseClientCallable.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_D__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_I__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_JsonArray__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_JsonBoolean__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_JsonNull__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_JsonNumber__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_JsonObject__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_JsonString__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_JsonValue__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_String__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_Z__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__D.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__I.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__Integer.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__JsonArray.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__JsonBoolean.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__JsonNull.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__JsonNumber.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__JsonObject.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__JsonString.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__JsonValue.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__Z.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallablesTest.java (14 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallablesTest24.java (2 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallablesTest25.java (2 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ExtendsLegacyClientCallablePrivate__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_D__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_I__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_JsonArray__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_JsonBoolean__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_JsonNull__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_JsonNumber__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_JsonObject__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_JsonString__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_JsonValue__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_String__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_Z__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__D.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__I.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__Integer.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__JsonArray.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__JsonBoolean.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__JsonNull.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__JsonNumber.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__JsonObject.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__JsonString.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__JsonValue.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__Z.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_D__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_I__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_JsonArray__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_JsonBoolean__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_JsonNull__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_JsonNumber__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_JsonObject__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_JsonString__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_JsonValue__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_String__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_Z__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__D.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__I.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__Integer.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__JsonArray.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__JsonBoolean.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__JsonNull.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__JsonNumber.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__JsonObject.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__JsonString.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__JsonValue.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__V.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__Z.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablesPrivateTest.java (7 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablesPrivateTest24.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablesPrivateTest25.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablesTest.java (14 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablesTest24.java (1 hunks)
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablesTest25.java (1 hunks)
💤 Files with no reviewable changes (5)
  • src/main/java/com/flowingcode/vaadin/jsonmigration/InstrumentedRoute.java
  • src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalArrayNode.java
  • src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalBooleanNode.java
  • src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalNullNode.java
  • src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalNumberNode.java
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: javier-godoy
Repo: FlowingCode/JsonMigrationHelper PR: 11
File: src/main/java/com/flowingcode/vaadin/jsonmigration/JsonSerializer.java:281-301
Timestamp: 2025-11-25T16:35:42.544Z
Learning: In the JsonMigrationHelper project, code copied from the Vaadin codebase should be kept consistent with the original source unless there's a specific reason to deviate.
📚 Learning: 2025-11-25T16:35:42.544Z
Learnt from: javier-godoy
Repo: FlowingCode/JsonMigrationHelper PR: 11
File: src/main/java/com/flowingcode/vaadin/jsonmigration/JsonSerializer.java:281-301
Timestamp: 2025-11-25T16:35:42.544Z
Learning: In the JsonMigrationHelper project, code copied from the Vaadin codebase should be kept consistent with the original source unless there's a specific reason to deviate.

Applied to files:

  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__JsonValue.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_JsonNull__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablesPrivateTest25.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablesTest24.java
  • src/main/java/com/flowingcode/vaadin/jsonmigration/InstrumentationViewInitializer.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__Integer.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__JsonString.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_D__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_JsonString__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_JsonArray__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__D.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_Z__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__D.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablesPrivateTest24.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_JsonObject__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__D.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__JsonValue.java
  • src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalObjectNode.java
  • src/main/java/com/flowingcode/vaadin/jsonmigration/JsonMigrationHelper25.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__Z.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__JsonObject.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_JsonString__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__JsonArray.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_I__V.java
  • README.md
  • src/main/java/com/flowingcode/vaadin/jsonmigration/JsonMigration.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__JsonNull.java
  • src/main/java/com/flowingcode/vaadin/jsonmigration/ClassInstrumentationUtil.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_D__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_Z__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__I.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__JsonObject.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_JsonNumber__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__JsonString.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__JsonNull.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_I__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_JsonValue__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__JsonArray.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__JsonNumber.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__JsonNumber.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__Z.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablesTest25.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__JsonBoolean.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__JsonNumber.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__I.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__JsonObject.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_JsonNumber__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_JsonValue__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__Integer.java
  • src/main/java/com/flowingcode/vaadin/jsonmigration/JsonSerializer.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__Z.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablesTest.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_JsonNumber__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__JsonNull.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__JsonBoolean.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_D__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_JsonArray__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallablesTest.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/BaseClientCallable.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_JsonArray__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_JsonBoolean__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_JsonBoolean__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_Z__V.java
  • pom.xml
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablesPrivateTest.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_JsonNull__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_JsonObject__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__Integer.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_JsonValue__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable__JsonString.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate__JsonArray.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_String__V.java
  • src/main/java/com/flowingcode/vaadin/jsonmigration/LegacyJsonMigrationHelper.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_I__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__JsonValue.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_String__V.java
  • src/main/java/com/flowingcode/vaadin/jsonmigration/ClassInstrumentationJacksonHelper.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__JsonBoolean.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable_JsonObject__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ExtendsLegacyClientCallablePrivate__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallablePrivate_JsonString__V.java
  • src/main/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_JsonBoolean__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/LegacyClientCallable__I.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_JsonNull__V.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallablesTest24.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallable_String__V.java
  • src/main/java/com/flowingcode/vaadin/jsonmigration/JsonMigrationHelper.java
  • src/main/java/com/flowingcode/vaadin/jsonmigration/JsonCodec.java
  • src/main/java/com/flowingcode/vaadin/jsonmigration/UnsupportedJsonValueImpl.java
  • src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalPendingJavaScriptResult.java
  • src/test/java/com/flowingcode/vaadin/jsonmigration/ClientCallablesTest25.java
🧬 Code graph analysis (4)
src/main/java/com/flowingcode/vaadin/jsonmigration/JsonMigrationHelper25.java (2)
src/main/java/com/flowingcode/vaadin/jsonmigration/JsonCodec.java (1)
  • JsonCodec (64-145)
src/main/java/com/flowingcode/vaadin/jsonmigration/LegacyJsonMigrationHelper.java (1)
  • SuppressWarnings (68-73)
src/main/java/com/flowingcode/vaadin/jsonmigration/JsonSerializer.java (6)
src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalObjectNode.java (1)
  • SuppressWarnings (33-60)
src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalStringNode.java (1)
  • SuppressWarnings (25-36)
src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalNullNode.java (1)
  • SuppressWarnings (25-41)
src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalBooleanNode.java (1)
  • SuppressWarnings (25-36)
src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalNumberNode.java (1)
  • SuppressWarnings (25-46)
src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalArrayNode.java (1)
  • SuppressWarnings (31-57)
src/main/java/com/flowingcode/vaadin/jsonmigration/JsonCodec.java (8)
src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalObjectNode.java (1)
  • SuppressWarnings (33-60)
src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalStringNode.java (1)
  • SuppressWarnings (25-36)
src/main/java/com/flowingcode/vaadin/jsonmigration/JsonMigrationHelper25.java (1)
  • SuppressWarnings (223-276)
src/main/java/com/flowingcode/vaadin/jsonmigration/LegacyJsonMigrationHelper.java (1)
  • SuppressWarnings (68-73)
src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalNullNode.java (1)
  • SuppressWarnings (25-41)
src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalBooleanNode.java (1)
  • SuppressWarnings (25-36)
src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalNumberNode.java (1)
  • SuppressWarnings (25-46)
src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalArrayNode.java (1)
  • SuppressWarnings (31-57)
src/main/java/com/flowingcode/vaadin/jsonmigration/ElementalPendingJavaScriptResult.java (1)
src/main/java/com/flowingcode/vaadin/jsonmigration/JsonCodec.java (1)
  • JsonCodec (64-145)

@paodb paodb merged commit 7ff2580 into master Dec 3, 2025
3 checks passed
@paodb paodb deleted the 0.9.0-rc branch December 3, 2025 16:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants